﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;

namespace test
{
    /// <summary>
    /// Interface to define common proximity entity for event notifications
    /// The hash value identifies the radio source unambiguously 
    /// </summary>
    public interface IProximityData
    {
        string HashValue { get; }
    }

    public class BluetoothData : IProximityData
    {
//        public int Nap { get; set; }
//        public int Sap { get; set; }
        public byte[] MacAddress { get; set; }
        public string Name { get; set; }
        public byte Rssi { get; set; }

        #region IProximityData Members

        string IProximityData.HashValue
        {
            get { throw new NotImplementedException(); }
        }

        #endregion
    }

    public class CellData : IProximityData
    {
        public int Id { get; set; }
        public int Lac { get; set; }
        public int Mcc { get; set; }
        public int Mnc { get; set; }
        public int SignalStrength { get; set; }

        #region IProximityData Members

        public string HashValue
        {
            get { throw new NotImplementedException(); }
        }

        #endregion
    }

    public class WifiData : IProximityData
    {
        public byte[] MacAddress { get; set; }
        public string Name { get; set; }
        public int Rssi { get; set; }

        #region IProximityData Members

        public string HashValue
        {
            get { throw new NotImplementedException(); }
        }

        #endregion
    }

    public class GPSData
    {
        public double Latitude { get; set; }
        public double Longitude { get; set; }
        public DateTime Time { get; set; }
        public static GPSData Empty
        {
            get { return new GPSData() { Latitude = double.NaN, Longitude = double.NaN, Time = DateTime.Now}; }
        }
    }
}
